console.log('1');

setTimeout(() => {
    console.log('2');
}, 0);

Promise.resolve().then(() => {
    console.log('3');
});

console.log('4');

// 输出顺序：1, 4, 3, 2
// 原因：Promise 是微任务，setTimeout 是宏任务